package cn.zyq.charging.order.dao.repository;

import cn.zyq.charging.order.pojo.po.ChargingProcessPO;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
/*
 ES的CRUD操作接口，包含： 保存、 批量保存、 删除元素、
 public interface CrudRepository<T, ID> extends Repository<T, ID> {
         <S extends T> S save(S entity);
         <S extends T> Iterable<S> saveAll(Iterable<S> entities);
         Optional<T> findById(ID id);
         boolean existsById(ID id);
         Iterable<T> findAll();
         Iterable<T> findAllById(Iterable<ID> ids);
         long count();
         void deleteById(ID id);
         void delete(T entity);
         void deleteAllById(Iterable<? extends ID> ids);
         void deleteAll(Iterable<? extends T> entities);
         void deleteAll();
 }


 public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> {
    Iterable<T> findAll(Sort sort);
    Page<T> findAll(Pageable pageable);
 }

  分页且能排序
 public interface ElasticsearchRepository<T, ID> extends PagingAndSortingRepository<T, ID> {
        Page<T>    searchSimilar(T entity, @Nullable String[] fields, Pageable pageable);
 }
 */

/**
 * ES数据操作： 使用自定义接口继承ES框架提供的接口 (CRUD由ES框架实现， 自定义接口只需要继承即可，不需要写额外的代码)
 * 注意： 实际操作的数据对象所属的类ChargingProcessPO上需要标注注解@Document(indexName = "charging_process_2328")
 *
 * 索引名称：charging_process_2328
 * 注意：ES中间件会检测电脑磁盘剩余解空间，如果占用率超过85%，ES中间件可能会进入只读模式(不能写入数据到ES了)
 */
public interface ChargingProcessRepository extends ElasticsearchRepository<ChargingProcessPO,Long> {
}
//具体笔记地址： https://b03ybiqafpy.feishu.cn/docx/GPO9dkvj5ofOALxpNpPcLw4UnIg
//中的  "6.3.保存数据到ES"